#ifndef HASH_ENCRYPTION_H
#define HASH_ENCRYPTION_H

#include <QCoreApplication>
#include <QCryptographicHash>

// 对密码进行加密，返回MD5码
QString hashPassword(const QString &password) {
    QByteArray passwordData = password.toUtf8();
    QByteArray hash = QCryptographicHash::hash(passwordData, QCryptographicHash::Md5);
    return QString(hash.toHex());
}

// 对比输入密码和加密后的密码
bool verifyPassword(const QString &inputPassword, const QString &storedPassword) {
    return hashPassword(inputPassword) == storedPassword;
}

// MD5加密
QString md5Hash(const QString &inputString) {
    // 创建一个 QCryptographicHash 实例，选择 MD5 哈希算法
    QCryptographicHash hash(QCryptographicHash::Md5);

    // 添加要进行哈希的数据
    hash.addData(inputString.toUtf8());

    // 获取 MD5 哈希值
    QByteArray hashedData = hash.result();

    // 将二进制哈希值转换为十六进制字符串
    QString result = hashedData.toHex();

    return result;
}

#endif // HASH_ENCRYPTION_H
